<template>
  <div class="zero">

  </div>
</template>

<script setup lang="ts">
import { onMounted } from 'vue';
import { db } from '@utils/database';


// 或 PostgreSQL
// await db.connect('postgres', 'postgres://user:password@localhost/dbname');
onMounted(async () => {
  await db.connect('sqlite', 'test.db'); // 数据库文件位于 Tauri 的本地数据目录
  // 创建表

  await db.execute(`
    CREATE TABLE IF NOT EXISTS users (
      id INTEGER PRIMARY KEY AUTOINCREMENT,
      name TEXT NOT NULL,
      email TEXT UNIQUE
    )
  `);
  // 插入数据

  const result = await db.execute(
    'INSERT INTO users (name, email) VALUES (?, ?)',
    ['Alice', 'alice@example.com']
  );
  console.log('Insert ID:', result.lastInsertId);
  // 查询数据

  const users = await db.query<{ id: number; name: string }>(
    'SELECT id, name FROM users'
  );
  console.log(users); // 输出: Alice
  // 更新数据
  await db.execute(
    'UPDATE users SET email = ? WHERE id = ?',
    ['new_email@example.com', 1]
  );
  // 删除数据

  await db.execute('DELETE FROM users WHERE id = ?', [1]);
  // 使用事务

  // await db.transaction(async () => {
  // await db.execute('INSERT INTO users (name) VALUES (?)', ['Bob']);
  // await db.execute('UPDATE accounts SET balance = balance - 100 WHERE user_id = ?', [2]);
  /**
   路径处理
SQLite 数据库路径默认相对于 Tauri 的本地数据目录，可使用 @tauri-apps/api/path 获取具体路径。

防 SQL 注入
始终使用参数化查询（? 占位符），不要拼接用户输入的字符串。

类型安全
为查询结果定义 TypeScript 类型：

typescript
复制
interface User {
  id: number;
  name: string;
  email: string;
}
const users = await db.query<User>('SELECT * FROM users');
错误处理
在调用处添加 try-catch：

typescript
复制
try {
  await db.execute('INVALID SQL');
} catch (err) {
  console.error('Database error:', err);
}
   */
})
</script>

<style scoped lang="less"></style>
